[PATCH] [Mips] Add support for min/max/umin/umax atomics
authorMirko Brkusanin <Mirko.Brkusanin@rt-rk.com>
Thu, 12 Dec 2019 10:19:41 +0000 (11:19 +0100)
committerSylvestre Ledru <sylvestre@debian.org>
Sat, 31 Oct 2020 13:09:15 +0000 (13:09 +0000)
commit2d5fc6b54f76156567e0811b2a9b17ffc40e2a84
tree5efb9b270cf50dc109810e0592abc476975da936
parentb8a009a4c5bebf17238ee3f24e0cc26b757b5013
[PATCH] [Mips] Add support for min/max/umin/umax atomics

In order to properly implement these atomic we need one register more than other
binary atomics. It is used for storing result from comparing values in addition
to the one that is used for actual result of operation.

https://reviews.llvm.org/D71028

Changed-by: James Clarke <jrtc27@debian.org>
[Backported to 9 by replacing Register with unsigned]

Gbp-Pq: Name D71028-mips-rust-test.diff
llvm/lib/Target/Mips/Mips64InstrInfo.td
llvm/lib/Target/Mips/MipsExpandPseudo.cpp
llvm/lib/Target/Mips/MipsISelLowering.cpp
llvm/lib/Target/Mips/MipsInstrInfo.td
llvm/lib/Target/Mips/MipsScheduleGeneric.td
llvm/lib/Target/Mips/MipsScheduleP5600.td
llvm/test/CodeGen/Mips/atomic-min-max-64.ll [new file with mode: 0644]
llvm/test/CodeGen/Mips/atomic-min-max.ll [new file with mode: 0644]
llvm/test/CodeGen/Mips/atomic.ll